package com.small.os.minio.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.small.os.minio.entity.AqUpload;
import com.small.os.minio.entity.vo.AqUploadCompose;
import com.small.os.minio.entity.vo.AqUploadInit;
import com.small.os.minio.entity.vo.MinioQ;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wangguochao
 * @since 2020-10-20
 */
public interface IAqUploadService extends IService<AqUpload> {
    /**
     * 分片上传
     * @param aqUpload 分片对象
     * @return 上传结果
     */
    Map<String, Object> uploadFilesInPieces(AqUploadInit aqUpload);

    /**
     * 合并
     * @param param 合并参数
     * @return 结果
     */
    boolean composeFile(AqUploadCompose param);

    /**
     * 获取文件列表
     * @param parentIds 父级路径
     * @return 文件列表
     */
    List<AqUpload> findByPath(String parentIds);


    /**
     * 重命名
     * @param id ID
     * @param folderColor 文件名
     */
    boolean renameOrFolderColor(String id,String folderColor);

    /**
     * 查询文件加名字数量
     *
     * @param fileName 文件夹名字
     * @param parentIds 父级
     * @return 数量
     */
    long countByFileNameAndDir( String fileName,String parentIds);

    /**
     * 获取文件列-分页
     */
    IPage<AqUpload> pageByPath(MinioQ param);

    /**
     *
     * @param fileMd5
     * @param parentIds
     * @return
     */
    int countByMd5(String fileMd5, String parentIds);
    int countByFileName(String fileName, String parentIds);
}
